package com.liusr.template.mapper;

import com.liusr.template.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper {

	/**
	 * 添加用户
	 *
	 * @param user 用户对象
	 * @return int
	 */
	int addUser(User user);

	/**
	 * 根据主键删除用户
	 *
	 * @param id 主键id
	 * @return int
	 */
	int deleteUserById(long id);

	/**
	 * 根据主键逻辑删除用户
	 *
	 * @param id 主键id
	 * @return int
	 */
	int isDeleteById(long id);

	/**
	 * 根据主键id更新用户信息
	 *
	 * @param user 用户对象
	 * @return int
	 */
	int updateUserById(User user);

	/**
	 * 根据主键查询用户信息
	 *
	 * @param id 主键id
	 * @return User
	 */
	User selectUserById(long id);

	/**
	 * 多条件模糊查询
	 *
	 * @param username     用户名
	 * @param age          年龄
	 * @param studentMajor 专业
	 * @return User
	 */
	List<User> selectUserLike(@Param("username") String username, @Param("age") long age, @Param("studentMajor") String studentMajor);

	/**
	 * 获取所有用户
	 *
	 * @return List<User>
	 */
	List<User> selectAllUser();
}
